package pig.model;

import java.util.HashMap;
import java.util.List;

import javax.annotation.Resource;

import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.stereotype.Repository;

@Repository
public class SellerDAOImpl implements SellerDAO  {
	
	@Resource(name="sqlSessionTemplate")
	private SqlSessionTemplate sqlSessionTemplate;

	@Override
	public void sellerRegister(SellerVO sellerVO) {
		sqlSessionTemplate.insert("seller.register",sellerVO);
	}
	
	// id 중복체크
	@Override
	public int idCheck(String id) {
		return sqlSessionTemplate.selectOne("seller.idcheck",id);
	}

	// 상품을 등록하는 메서드
	@Override
	public void registerDeal(DealVO dealVo) {
		sqlSessionTemplate.insert("seller.registerDeal",dealVo);
	}
	
	// 등록한 상품의 정보를 찾는 메서드
	@Override
	public DealVO findDealByNumber(String dealNumber) {
		return sqlSessionTemplate.selectOne("seller.findDealByNumber",dealNumber);
	}
	
	// 구매자가 등록한 상품 리스트를 보는 메서드
	@Override
	public List<DealVO> showDealListBySeller(String sellerId) {
		return sqlSessionTemplate.selectList("seller.showDealListBySeller",sellerId);
	}
	
	//판매자 정보수정
	@Override
	public int updateSeller(SellerVO sellerVO) {
		return sqlSessionTemplate.update("seller.sellerupdate",sellerVO);
	}
	
	// 상품정보수정
	@Override
	public void updateDealInfo(DealVO dealVO) {
		sqlSessionTemplate.update("seller.updateDealInfo",dealVO);
	}
	
	// 상품의 딜번호 찾아오기
	@Override
	public String findDealNumber() {
		return sqlSessionTemplate.selectOne("seller.findDealNumber");
	}
	
	// 상품 이미지 등록
	@Override
	public void registerDealImage(String dealNum, String imgName) {
		HashMap<String,String> map=new HashMap<String,String>();
		map.put("dealNum",dealNum );
		map.put("imgName", imgName);
		sqlSessionTemplate.update("seller.registerDealImage",map);
	}
	
	// 카테고리 값 가져오기
	@Override
	public List<String> getCategoryKind() {
		return sqlSessionTemplate.selectList("seller.getCategoryKind");
	}
	
	//판매자 상품정보 가져오기
	@Override
	public List<BuyVO> seller_Dealhistory(String sellerId){
		return sqlSessionTemplate.selectList("seller.seller_Dealhistory",sellerId);
	}
	
	// 판매자 이메일 중복체크
	@Override
	public int emailCheck(String email) {
		return sqlSessionTemplate.selectOne("seller.emailCheck",email);
	}
	
	// 상품번호로 정보 찾기
	@Override
	public List<BuyVO> findHistoryByDealNumber(String sellerId) {
		return sqlSessionTemplate.selectList("seller.findHistoryByDealNumber",sellerId);
	}
	
	// 상품명으로 정보 찾기
	@Override
	public List<BuyVO> findHistoryByDealTitle(String sellerId) {
		return sqlSessionTemplate.selectList("seller.findHistoryByDealTitle",sellerId);
	}
	
	// 구매자 아이디로 정보 찾기
	@Override
	public List<BuyVO> findHistoryByCustomerId(String sellerId) {
		return sqlSessionTemplate.selectList("seller.findHistoryByCustomerId",sellerId);
	}
}
